import { getPayMockAPI, getPayWxPayMiniPayAPI } from '@/services/order'
import type { XtxGuessInstance } from '@/types/component'
import { ref } from 'vue'

// 知识点[组合式函数]:发现存在重复逻辑,记得封装组合式函数,而且写好注释,好习惯.

/**
 * 猜你喜欢-组合式函数
 * @returns guessRef 滚动容器对象
 * @returns onScrolltolower 滚动触发方法
 */
export const useGetGuessList = () => {
  const guessRef = ref<XtxGuessInstance>()
  const onScrolltolower = () => {
    guessRef.value?.getMore()
  }
  return {
    guessRef,
    onScrolltolower,
  }
}

/** * 去支付-组合式函数
 * @param action 支付成功后的回调函数
 * @returns goToPay 去支付逻辑
 */
export const useGotoPay = (orderNo: string, action: () => void) => {
  const goToPay = async () => {
    if (import.meta.env.DEV) {
      // 开发环境模拟支付成功
      await getPayMockAPI({
        orderId: orderNo,
      })
    } else {
      // 生产环境调用支付接口（实际支付的接口，本接口限定了绑定对应的appid，且登录对应微信号，本次只能用模拟接口，实际开发需要后台加入开发者列表才行）
      const res = await getPayWxPayMiniPayAPI({
        orderId: orderNo,
      })
      wx.requestPayment(res.result) //官方小程序支付接口
    }
    action()
  }

  return {
    goToPay,
  }
}
